<template>
  <view class="mine-container" :style="{height: `${windowHeight}px`}">
    <!--顶部个人信息栏-->
    <view class="header-section">
      <view class="flex padding justify-between">
        <view class="flex align-center">
          <view v-if="!avatar" class="cu-avatar xl round bg-white">
            <view class="iconfont icon-people text-gray icon"></view>
          </view>
          <image v-if="avatar" @click="handleToAvatar" :src="avatar" class="cu-avatar xl round" mode="widthFix">
          </image>
          <view v-if="!name" @click="handleToLogin" class="login-tip">
            点击登录
          </view>
          <view v-if="name" @click="handleToInfo" class="user-info">
            <view class="u_title">
              用户名：{{ name }}
            </view>
          </view>
        </view>
        <view @click="handleToInfo" class="flex align-center">
          <text>个人信息</text>
          <view class="iconfont icon-right"></view>
        </view>
      </view>
    </view>

    <!-- <view class="content-section">
      <view class="mine-actions grid col-4 text-center">
        <view class="action-item" @click="handleJiaoLiuQun">
          <view class="iconfont icon-friendfill text-pink icon"></view>
          <text class="text">交流群</text>
        </view>
        <view class="action-item" @click="handleBuilding">
          <view class="iconfont icon-service text-blue icon"></view>
          <text class="text">在线客服</text>
        </view>
        <view class="action-item" @click="handleBuilding">
          <view class="iconfont icon-community text-mauve icon"></view>
          <text class="text">反馈社区</text>
        </view>
        <view class="action-item" @click="handleBuilding">
          <view class="iconfont icon-dianzan text-green icon"></view>
          <text class="text">点赞我们</text>
        </view>
      </view> -->

      <view class="menu-list">
        <view v-if="isExpert" class="list-cell list-cell-arrow" @click="handleToMessage">
          <view class="menu-item-box">
            <view class="iconfont icon-chatbubble menu-icon"></view>
            <view>我的消息</view>
            <view v-if="unreadCount > 0" class="unread-badge">
              <text class="badge-text">{{ unreadCount > 99 ? '99+' : unreadCount }}</text>
            </view>
          </view>
        </view>
        <!-- <view class="list-cell list-cell-arrow" @click="handleToEditInfo">
          <view class="menu-item-box">
            <view class="iconfont icon-user menu-icon"></view>
            <view>编辑资料</view>
          </view>
        </view> -->
        <!-- <view class="list-cell list-cell-arrow" @click="handleHelp">
          <view class="menu-item-box">
            <view class="iconfont icon-help menu-icon"></view>
            <view>常见问题</view>
          </view>
        </view> -->
        <view class="list-cell list-cell-arrow" @click="handleAbout">
          <view class="menu-item-box">
            <view class="iconfont icon-aixin menu-icon"></view>
            <view>关于我们</view>
          </view>
        </view>
        <view class="list-cell list-cell-arrow" @click="handleToSetting">
          <view class="menu-item-box">
            <view class="iconfont icon-setting menu-icon"></view>
            <view>应用设置</view>
          </view>
        </view>
      </view>
  </view>
</template>

<script>
  export default {
    data() {
      return {
        name: this.$store.state.user.name,
        unreadCount: 0
      }
    },
    computed: {
      avatar() {
        return this.$store.state.user.avatar
      },
      windowHeight() {
        return uni.getSystemInfoSync().windowHeight - 50
      },
      isExpert() {
        const userRoles = this.$store.state.user.roles || [];
        return userRoles.some(role => {
          if (!role || typeof role !== 'string') {
            return false;
          }
          const lowerRole = role.toLowerCase();
          return lowerRole === 'expert' || lowerRole.includes('expert');
        });
      }
    },
    onShow() {
      // 每次显示页面时更新未读消息数
      this.updateUnreadCount();
    },
    onLoad() {
      this.updateUnreadCount();
      // 监听消息更新事件
      uni.$on('message-updated', this.updateUnreadCount);
    },
    onUnload() {
      // 页面卸载时移除事件监听
      uni.$off('message-updated', this.updateUnreadCount);
    },
    methods: {
      // 更新未读消息数
      updateUnreadCount() {
        const allMessages = uni.getStorageSync('all_messages') || [];
        const userId = this.$store.state.user.id;
        const userRoles = this.$store.state.user.roles || [];
        const isNursingGroup = userRoles.some(role => {
          if (!role || typeof role !== 'string') {
            return false;
          }
          const lowerRole = role.toLowerCase();
          return lowerRole === 'expert' || lowerRole.includes('expert');
        });
        
        let count = 0;
        allMessages.forEach(msg => {
          if (!msg.isRead && msg.senderId !== userId) {
            if (isNursingGroup) {
              // 高年资护士：统计发送给该护士的未读消息
              if (msg.receiverType === 'nurse') {
                count++;
              }
            } else {
              // 普通用户：统计发送给自己的未读消息
              if (msg.receiverId === userId) {
                count++;
              }
            }
          }
        });
        
        this.unreadCount = count;
      },
      handleToInfo() {
        this.$tab.navigateTo('/pages/mine/info/index')
      },
      handleToEditInfo() {
        this.$tab.navigateTo('/pages/mine/info/edit')
      },
      handleToSetting() {
        this.$tab.navigateTo('/pages/mine/setting/index')
      },
      handleToLogin() {
        this.$tab.reLaunch('/pages/login')
      },
      handleToAvatar() {
        this.$tab.navigateTo('/pages/mine/avatar/index')
      },
      handleHelp() {
        this.$tab.navigateTo('/pages/mine/help/index')
      },
      handleAbout() {
        this.$tab.navigateTo('/pages/mine/about/index')
      },
      handleToMessage() {
        this.$tab.navigateTo('/pages/mine/message/index')
      },
      handleJiaoLiuQun() {
        this.$modal.showToast('QQ群：①133713780(满)、②146013835(满)、③189091635')
      },
      handleBuilding() {
        this.$modal.showToast('模块建设中~')
      }
    }
  }
</script>

<style lang="scss" scoped>
  page {
    background-color: #f5f6f7;
  }

  .mine-container {
    width: 100%;
    height: 100%;


    .header-section {
      padding: 15px 15px 45px 15px;
      background-color: #3c96f3;
      color: white;

      .login-tip {
        font-size: 18px;
        margin-left: 10px;
      }

      .cu-avatar {
        border: 2px solid #eaeaea;

        .icon {
          font-size: 40px;
        }
      }

      .user-info {
        margin-left: 15px;

        .u_title {
          font-size: 18px;
          line-height: 30px;
        }
      }
    }

    .content-section {
      position: relative;
      top: -50px;

      .mine-actions {
        margin: 15px 15px;
        padding: 20px 0px;
        border-radius: 8px;
        background-color: white;

        .action-item {
          .icon {
            font-size: 28px;
          }

          .text {
            display: block;
            font-size: 13px;
            margin: 8px 0px;
          }
        }
      }
    }

    .menu-list {
      .menu-item-box {
        display: flex;
        align-items: center;
        position: relative;
        
        .unread-badge {
          position: absolute;
          right: 0;
          background-color: #ff4757;
          border-radius: 20rpx;
          min-width: 40rpx;
          height: 40rpx;
          display: flex;
          align-items: center;
          justify-content: center;
          padding: 0 12rpx;
          margin-left: auto;
          
          .badge-text {
            font-size: 22rpx;
            color: #ffffff;
            font-weight: bold;
          }
        }
      }
    }
  }
</style>
